±ÍÇÏ´Â ¼Õ´Ô À̽ʴϴÙ
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ
  
  µ¨¸¶´ç °ø½Ä ÀºÇà°èÁÂ
  ÇϳªÀºÇà 227-910235-83607
  ¿¹±ÝÁÖ ÀÌ»ó±¹(¿î¿µÁø)
ÇÁ·ÎÁ§Æ® °Ô½ÃÆÇ
ÅõÇ¥°Ô½ÃÆÇ
µ¨¸¶´ç¼Ò°³
±âÃʺÎÅÍ È°¿ë±îÁö! µ¨ÆÄÀÌ ±³À° - µ¥ºê±â¾î
Áú¹®°ú ´äº¯ Áú¹®°ú ´äº¯ ÀÔ´Ï´Ù.
±Û³»¿ë - Áú¹®°ú ´äº¯
 [´äº¯] ÆÄÀÏ ¹öÀüÁ¤º¸¸¦ ±¸ÇÒ·Á¸é¿ä...
¿ì¸®Ä£±¸
(¼Õ´Ô)
2003-02-27 ¿ÀÈÄ 11:30:59
4861ȸ Á¶È¸


µî·ÏµÈ ÆÄÀÏÀÌ ¾ø½À´Ï´Ù.
¾î¶² ÆÄÀÏ(exe, dll)ÀÇ ¹öÀüÀ» ÀÐ¾î ¿À±â À§Çؼ­´Â
3°³ÀÇ ÇÔ¼ö¸¦ ¼ø¼­´ë·Î »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

1. GetFileVersionInfoSize
2. GetFileVersionInfo
3. VerQueryValue

°á±¹ VerQueryValueÇÔ¼ö¸¦ È£Ãâ ÇÏ°í ³­ÈÄ ¹öÀüÀ» ±¸ÇÒ¼ö ÀÖÁÒ...
À§ 3°³ÀÇ APIÇÔ¼öµéÀº µµ¿ò¸»À» ÂüÁ¶ ÇϽðí

°£´ÜÇÑ ¿¹Á¦¸¦ ¸¸µé¾î ºÃ½À´Ï´ç...
Âü°í Çϼ¼¿ä...

ÆûÀ§¿¡ memo¿Í ¹öÆ°Çϳª ³õ¾Ò½À´Ï´Ù.
µµ¿òÀÌ µÇ¾úÀ½ Çϳ׿ä...

±×·³ ÁñÇÁ...

procedure TForm1.Button1Click(Sender: TObject);
var
Size, Size2: DWord;
Pt, Pt2: Pointer;
begin
Memo1.Lines.Clear;
Size := GetFileVersionInfoSize (
PChar (ParamStr (0)), Size2);
if Size > 0 then
begin
GetMem (Pt, Size);
try
GetFileVersionInfo (PChar (ParamStr (0)), 0, Size, Pt);
// show the fixed information
VerQueryValue (Pt, '\', Pt2, Size2);
with TVSFixedFileInfo (Pt2^) do
begin
Memo1.Lines.Add (
'Signature (should be invariably 0xFEEFO4BD): ' +
IntToHex (dwSignature, 16));
Memo1.Lines.Add ('Major version number: ' +
IntToStr (HiWord (dwFileVersionMS)));
Memo1.Lines.Add ('Minor version number: ' +
IntToStr (LoWord (dwFileVersionMS)));
Memo1.Lines.Add ('Release version number: ' +
IntToStr (HiWord (dwFileVersionLS)));
Memo1.Lines.Add ('Build version number: ' +
IntToStr (LoWord (dwFileVersionLS)));
if (dwFileFlagsMask and dwFileFlags
and VS_FF_DEBUG) <> 0 then
Memo1.Lines.Add ('Debug info included');
if (dwFileFlagsMask and dwFileFlags and
VS_FF_PRERELEASE) <> 0 then
Memo1.Lines.Add ('Pre-release (beta) version');
if (dwFileFlagsMask and dwFileFlags and
VS_FF_PRIVATEBUILD) <> 0 then
Memo1.Lines.Add ('Private Build');
if (dwFileFlagsMask and dwFileFlags and
VS_FF_SPECIALBUILD) <> 0 then
Memo1.Lines.Add ('Special Build');
end;

// show some of the strings
VerQueryValue(Pt,
'\StringFileInfo\040904E4\FileDescription',
Pt2, Size2);
Memo1.Lines.Add ('File Description: ' +
PChar (Pt2));
VerQueryValue(Pt,
'\StringFileInfo\040904E4\FileVersion',
Pt2, Size2);
Memo1.Lines.Add ('File Version: ' + PChar (pt2));
VerQueryValue(Pt,
'\StringFileInfo\040904E4\InternalName',
Pt2, Size2);
Memo1.Lines.Add ('Internal Name: ' + PChar (pt2));
VerQueryValue(Pt,
'\StringFileInfo\040904E4\LegalCopyright',
Pt2, Size2);
Memo1.Lines.Add ('Legal Copyright: ' + PChar (pt2));
VerQueryValue(Pt,
'\StringFileInfo\040904E4\ProductDescription',
Pt2, Size2);
Memo1.Lines.Add ('Product Name: ' + PChar (pt2));
VerQueryValue(Pt,
'\StringFileInfo\040904E4\ProductVersion',
Pt2, Size2);
Memo1.Lines.Add ('Product Version: ' + PChar (pt2));
finally
FreeMem (Pt);
end;
end;
end;